package com.github.data_manage.domain.po

import cn.idev.excel.annotation.ExcelIgnore
import jakarta.persistence.Column
import jakarta.persistence.Entity
import jakarta.persistence.GeneratedValue
import jakarta.persistence.GenerationType
import jakarta.persistence.Id
import jakarta.persistence.Table
import java.math.BigDecimal
import java.time.LocalDate

@Entity
@Table(name = "t_fund_depth_research_attach_annual_info")
open class FundDepthResearchAttachAnnualInfo {

    constructor(fundId: Int?, year: Int?) {
        this.fundId = fundId
        this.year = year
    }

    constructor()


    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @ExcelIgnore
    open var id: Long? = null

    @Column(name = "fund_id")
    open var fundId: Int? = null

    open var year: Int? = null

    open lateinit var dataMonth: LocalDate

    open var longAnnual: BigDecimal? = BigDecimal.ZERO

    open var shortAnnual: BigDecimal? = BigDecimal.ZERO

    open var uSAnnual: BigDecimal? = BigDecimal.ZERO

    open var canadaAnnual: BigDecimal? = BigDecimal.ZERO

    open var brazilAnnual: BigDecimal? = BigDecimal.ZERO

    open var mexicoAnnual: BigDecimal? = BigDecimal.ZERO

    open var argentinaAnnual: BigDecimal? = BigDecimal.ZERO

    open var chileAnnual: BigDecimal? = BigDecimal.ZERO

    open var colombiaAnnual: BigDecimal? = BigDecimal.ZERO

    open var peruAnnual: BigDecimal? = BigDecimal.ZERO

    open var uKAnnual: BigDecimal? = BigDecimal.ZERO

    open var germanyAnnual: BigDecimal? = BigDecimal.ZERO

    open var franceAnnual: BigDecimal? = BigDecimal.ZERO

    open var switzerlandAnnual: BigDecimal? = BigDecimal.ZERO

    open var netherlandsAnnual: BigDecimal? = BigDecimal.ZERO

    open var italyAnnual: BigDecimal? = BigDecimal.ZERO

    open var spainAnnual: BigDecimal? = BigDecimal.ZERO

    open var swedenAnnual: BigDecimal? = BigDecimal.ZERO

    open var saudiArabiaAnnual: BigDecimal? = BigDecimal.ZERO

    open var unitedArabEmiratesAnnual: BigDecimal? = BigDecimal.ZERO

    open var southAfricaAnnual: BigDecimal? = BigDecimal.ZERO

    open var nigeriaAnnual: BigDecimal? = BigDecimal.ZERO

    open var egyptAnnual: BigDecimal? = BigDecimal.ZERO

    open var japanAnnual: BigDecimal? = BigDecimal.ZERO

    open var chinaAnnual: BigDecimal? = BigDecimal.ZERO

    open var hongKongAnnual: BigDecimal? = BigDecimal.ZERO

    open var taiwanAnnual: BigDecimal? = BigDecimal.ZERO

    open var australiaAnnual: BigDecimal? = BigDecimal.ZERO

    open var indiaAnnual: BigDecimal? = BigDecimal.ZERO

    open var southKoreaAnnual: BigDecimal? = BigDecimal.ZERO

    open var singaporeAnnual: BigDecimal? = BigDecimal.ZERO

    open var indonesiaAnnual: BigDecimal? = BigDecimal.ZERO

    open var malaysiaAnnual: BigDecimal? = BigDecimal.ZERO

    open var thailandAnnual: BigDecimal? = BigDecimal.ZERO

    open var philippinesAnnual: BigDecimal? = BigDecimal.ZERO

    open var vietnamAnnual: BigDecimal? = BigDecimal.ZERO

    open var newZealandAnnual: BigDecimal? = BigDecimal.ZERO

    open var otherCountryAnnual: BigDecimal? = BigDecimal.ZERO

    // --------------------- 所有行业的Annual ---------------------------
    open var consumerStaplesAnnual: BigDecimal? = BigDecimal.ZERO
    open var consumerDiscretionaryAnnual: BigDecimal? = BigDecimal.ZERO
    open var informationTechnologyAnnual: BigDecimal? = BigDecimal.ZERO
    open var financialsAnnual: BigDecimal? = BigDecimal.ZERO
    open var healthCareAnnual: BigDecimal? = BigDecimal.ZERO
    open var industrialsAnnual: BigDecimal? = BigDecimal.ZERO
    open var utilitiesAnnual: BigDecimal? = BigDecimal.ZERO
    open var materialsAnnual: BigDecimal? = BigDecimal.ZERO
    open var realEstateAnnual: BigDecimal? = BigDecimal.ZERO
    open var energyAnnual: BigDecimal? = BigDecimal.ZERO
    open var communicationServiceAnnual: BigDecimal? = BigDecimal.ZERO
    open var indexETFAnnual: BigDecimal? = BigDecimal.ZERO
    open var cashAnnual: BigDecimal? = BigDecimal.ZERO
    open var othersAnnual: BigDecimal? = BigDecimal.ZERO

    // --------------------- 所有市值的Annual ---------------------------
    open var bigger10bnAnnual: BigDecimal? = BigDecimal.ZERO
    open var fiveTo10bnAnnual: BigDecimal? = BigDecimal.ZERO
    open var oneTo5bnAnnual: BigDecimal? = BigDecimal.ZERO
    open var zeroPointThreeToOneAnnual: BigDecimal? = BigDecimal.ZERO
    open var litterZeroPointThreebnAnnual: BigDecimal? = BigDecimal.ZERO

    // --------------------- 所有资产类别的Annual ---------------------------
    open var equitiesAnnual: BigDecimal? = BigDecimal.ZERO
    open var fixedIncomeAnnual: BigDecimal? = BigDecimal.ZERO
    open var currenciesFXAnnual: BigDecimal? = BigDecimal.ZERO
    open var commoditiesAnnual: BigDecimal? = BigDecimal.ZERO
    open var alternativeInvestmentsAnnual: BigDecimal? = BigDecimal.ZERO
    open var realEstateAssetClassAnnual: BigDecimal? = BigDecimal.ZERO
    open var otherAssetClassAnnual: BigDecimal? = BigDecimal.ZERO

    // --------------------- 所有Investment tool的Annual ---------------------------
    open var cashSpotAnnual: BigDecimal? = BigDecimal.ZERO
    open var futuresAnnual: BigDecimal? = BigDecimal.ZERO
    open var optionsAnnual: BigDecimal? = BigDecimal.ZERO
    open var swapsAnnual: BigDecimal? = BigDecimal.ZERO
    open var etfETPAnnual: BigDecimal? = BigDecimal.ZERO
    open var otherToolAnnual: BigDecimal? = BigDecimal.ZERO
}